Networks enable computers and other devices to communicate. For example, networks can carry data representing video, audio, e-mail, and so forth. Typically, data sent across a network is divided into smaller messages known as packets. By analogy, a packet is much like an envelope you drop in a mailbox. A packet typically includes “payload” and a “header”. The packet's “payload” is analogous to the letter inside the envelope. The packet's “header” is much like the information written on the envelope itself. The header can include information to help network devices handle the packet appropriately. For example, the header can include an address that identifies the packet's destination.
A given packet may “hop” across many different intermediate network forwarding devices (e.g., “routers”, “bridges” and/or “switches”) before reaching its destination. These intermediate devices often perform a variety of packet processing operations. For example, intermediate devices often perform packet classification to determine how to forward a packet further toward its destination.
Many different forwarding protocols use link weights to represent the costs of traveling over different links. A device can use these weights to make forwarding path decisions. For example, many protocols use these weights to build a map of a network and figure out the lowest cost path to a destination. A commonly used scheme bases the link weight on the speed of a link. In such a scheme, forwarding decisions typically result in the fastest possible path.
Network forwarding devices are often fully powered around the clock and consume considerable amounts of power. Additionally, these devices frequently require active cooling, adding additional power consumption. Aggregating this consumption over a large number of forwarding devices can impose significant power demands and costs.